package com.example.javapoint.threads.reentrant;

/**
 * 可重入监视器
 * 同步方法中调用另一个同步方法，重入的实例对象是同一个
 */
class Reentrant {
    public synchronized void m() {
        System.out.println("m 方法被调用了");
        n();
    }

    private synchronized void n() {
        System.out.println("n 方法被调用了");
    }
}

public class ReentrantMonitor {
    public static void main(String[] args) {
        Reentrant r = new Reentrant();
        new Thread(() -> {
            r.m();
        }).start();
    }
}
